#!/bin/sh
# 
# 工具方法
# 
# @author liuzy
# @since 2016-07-02

F_debug "F_F" "加载tool.sh"

### 判断系统是否是64位
## 参数
# 无
## 返回
# 是否
function F_isX64() {
	F_debug "F_isX64" "判断系统是否是64位"
	if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
		F_return true
	else
		F_return false
	fi
}

### 根据命令判断是否已安装某个软件
## 参数
# $1 软件对应的命令
## 返回
# 是否
function F_isInstall() {
	F_debug "F_isInstall" "根据命令判断是否已安装某个软件"
	F_assert "F_isInstall" "软件对应的命令" $1
	if [[ `whereis $1` = "$1:" ]] ; then
		F_return false
	else
		F_return true
	fi
}

### 创建目录和子目录
## 参数
# $1 目录
## 返回
# 无
function F_mkDir() {
	F_debug "F_mkDir" "创建目录和子目录"
	if [[ $1 ]] ; then
		if [[ ! -d $1 ]] ; then
			mkdir -p $1
		fi
	else
		F_debug "F_mkDir" "目录未输入"
	fi
}

### 判断进程名称和端口号的进程是否存在
## 参数
# $1 进程名称
# $2 端口号
## 返回
# 是否存在
function F_isProccessByNamePort() {
	F_debug "F_isProccessByNamePort" "判断进程名称和端口号的进程是否存在"
	F_assert "F_isProccessByNamePort" "进程名称" $1
	F_assert "F_isProccessByNamePort" "端口号" $2
	if [[ `lsof -i :$2 | grep $1` ]] ; then
		F_return true
	else
		F_return false
	fi
}

### 根据进程名称和端口号结束进程
## 参数
# $1 进程名称
# $2 端口号
## 返回
# 无
function F_killByNamePort() {
	F_debug "F_killByNamePort" "根据进程名称和端口号结束进程"
	F_assert "F_killByNamePort" "进程名称" $1
	F_assert "F_killByNamePort" "端口号" $2
	F_isProccessByNamePort $1 $2
	if [[ ${F_result} = true ]] ; then
		pid=`lsof -i :$2 | grep $1 | awk '{print $2}'`
		if [[ ${pid} ]]; then
			F_debug "F_killByNamePort" "结束进程${pid}"
			kill -9 ${pid}
		else
			F_debug "F_killByNamePort" "没有找到进程名称为$1且端口$2为的进程"
		fi
	fi
}

### 安装五笔
## 参数
# 无
## 返回
# 无
function F_installWuBi() {
	F_debug "F_installWuBi" "安装五笔"
	if [[ `id -u` != "0" ]] ; then
		F_error "请切换root用户执行安装。"
		exit 1
	fi
	yum -y remove ibus
	yum -y install ibus ibus-table
	wubiDlUrl="https://liuzy88.com/files/vissible-ibus.tar.gz"
	wget －c --no-check-certificate ${wubiDlUrl}
	if [[ -f "${wubiDlUrl##*/}" ]] ; then
		tar xf vissible-ibus.tar.gz
		cp vissible.db /usr/share/ibus-table/tables
		cp vissible.gif /usr/share/ibus-table/icons
		rm -rf vissible-ibus.tar.gz
		rm -rf vissible.db
		rm -rf vissible.gif
		rm -rf vissible.txt
		F_info "点击左上角System->Preferences->Input Method。"
		F_info "点击Enable input method feature，选中Use IBus。"
		F_info "点击Input Method Preferences...。"
		F_info "在Input Method选项卡中找到极点五笔，Add。"
		F_info "好了，可以用Ctrl+Space切换到极点五笔了。"
	else
		F_error "文件${wubiDlUrl##*/}下载失败。"
		exit 1
	fi
}

